#ifndef  __TEST_SHOWMANAGER_H
#define  __TEST_SHOWMANAGER_H

#include <QObject>

class ShowManager;
class ShowFactoryForTest;
class IF_ScriptEngineInterface;
class MediaListModel;
class LightPresetModel;
class SequenceModel;
class SequenceItem;


class test_ShowManager : public QObject
{
   Q_OBJECT

public:
   test_ShowManager();

public slots:
   void init();
   void cleanup();

private:
   ShowFactoryForTest *m_showFactory;
   IF_ScriptEngineInterface *m_scriptEngine;
   MediaListModel *m_mediaModel;
   LightPresetModel *m_lightModel;
   SequenceModel *m_sequenceModel;
   QList<SequenceItem *> *m_sequenceItemList;
   ShowManager *m_showManager;
   QStringList *m_notificationLog;

private Q_SLOTS:
   void initTestCase();
   void cleanupTestCase();
   void testInstance();

   /* load a valid file */
   void testLoadShow();

   /* loading a file changes 'last file' in application settings */
   void testLoadingChangesApplicationSettings();

   /** exception on invalid file loading must be shown by GUI */
   void testNotificationOnInvalidFile();

   /** save file that has not a name or whose name is to be changed */
   void testSaveShowAs();

   /** save a show after a previous save */
   void testSaveShowAgain();

   /** save a show after load and modify */
   void testSaveShowAfterLoad();
};

#endif  // __TEST_SHOWMANAGER_H

